package com.xunfang.cloud.controller;

import com.xunfang.cloud.common.enties.Pay;
import com.xunfang.cloud.common.enties.PayDTO;
import com.xunfang.cloud.common.result.ResultData;
import org.springdoc.core.service.RequestBodyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;

/**
 * @author yellow Doctor
 * @date 2025-11-03
 * @desc https://blog.csdn.net/hekai7217
 */
@RestController
public class OrderController {

    //服务调用地址
    public static final String PaymentSrv_URL = "http://cloud-payment-service";//先写死，硬编码

    @Autowired
    private RestTemplate restTemplate;

    /**
     * 添加订单
     *                restTemplate
     * 在Order80 =====================>payment8001
     * @param payDTO
     * @return
     *
     * 总结:
     *     01 发送请求的时候
     *          地址需要写对  找到方法
     *          参数需要给对象     服务提供者 可以拿到参数
     *          返回结果 需要和 服务提供者返回的结果一致
     */
    @PostMapping("/consumer/pay/add")
    public ResultData addOrder(@RequestBody PayDTO payDTO){

        //地址: PaymentSrv_URL + "/pay/add"
        /**
         * 参数1:地址
         * 参数2:你发过去的内容
         * 参数3:返回的结果
         */
        String result = restTemplate.postForObject(PaymentSrv_URL + "/pay/add", payDTO, String.class);
        return ResultData.success(result);
    }


    // 删除+修改操作作为家庭作业，O(∩_∩)O。。。。。。。
    @GetMapping("/consumer/pay/get/{id}")
    public ResultData getPayInfo(@PathVariable("id") Integer id){
        Pay pay = restTemplate.getForObject(PaymentSrv_URL + "/pay/get/" + id, Pay.class);
        return ResultData.success(pay);
    }

}
